package br.furb.model.negocio;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Pedido implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3810385415335124012L;

	private int numeroPedido;
	private Usuario atendente;
	private List<ItemMenu> itensPedido;
	private Date data;
	
	public Pedido() {
		this.itensPedido = new ArrayList<ItemMenu>();
	}
	
	public Pedido(int numeroPedido, List<ItemMenu> itensPedido, Usuario atendente, Date data) {
		this.setNumeroPedido(numeroPedido);
		this.setItensPedido(itensPedido);
		this.setAtendente(atendente);
		this.setData(data);
	}

	public List<ItemMenu> getItensPedido() {
		return itensPedido;
	}

	public Usuario getAtendente() {
		return atendente;
	}
	
	public Date getData() {
		return data;
	}
	
	public int getNumeroPedido() {
		return this.numeroPedido;
	}
	
	public void setNumeroPedido(int numeroPedido) {
		this.numeroPedido = numeroPedido;
	}

	public void setItensPedido(List<ItemMenu> itensPedido) {
		this.itensPedido = itensPedido;
	}

	public void setAtendente(Usuario atendente) {
		this.atendente = atendente;
	}
	
	public void setData(Date data) {
		this.data = data;
	}
	
	public void addItemMenu(ItemMenu item) {
		this.itensPedido.add(item);
	}
	
	public boolean removeItemMenu(ItemMenu item) {
		return this.itensPedido.remove(item);
	}
	
	public void ConsomePedido() {
		for (ItemMenu im : itensPedido) {
			List<ItemEstoque> list = im.getItens();
			for (ItemEstoque ie : list) {
				ie.DescrementaQuantidade();
			}
		}
	}
	
	public double getValorTotal() {
		double ret = 0;
		for (ItemMenu i : itensPedido) {
			ret += i.getValor();
		}
		return ret;
	}
}